package br.com.sovi.resources.dispositivo;

import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;

import org.openinsula.vulcano.core.command.invoker.CommandInvoker;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import br.com.sovi.persistence.Dispositivo;

@Component
@Path("/dispositivo")
@Produces(MediaType.APPLICATION_JSON)
public class DispositivoResource {
	private final Logger logger = LoggerFactory.getLogger(getClass());

	@Autowired
	private CommandInvoker commandInvoker;

	@GET
	@Path("/allByEmpresa")
	public List<DispositivoVO> allByEmpresa() {
		logger.debug("Capturando todos os dispositivos.");

		// TODO capturar a empresa
		List<Dispositivo> dispostivos = commandInvoker.invoke(new GetDispositivoByEmpresa(null));
		
		List<DispositivoVO> vos = new ArrayList<DispositivoVO>();
		
		for (Dispositivo dispositivo : dispostivos) {
			vos.add(new DispositivoVO(dispositivo));
		}
		
		return vos;
	}

}
